package com.voxel.sense.infomsg.utils;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.voxel.sense.infomsg.R;

import java.io.File;

import cyy.example.com.facotry.constants.CommonConstants;

/**
 * Created by ChenYiYao on 2018/9/13.
 * des : glide加载图片的工具类
 */
public class GlideUtils {

    /**
     * 加载用户相关的图片
     */
    public static void GlideLoadUserPic(Context context, String suffix, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_USER_URL + suffix, view);

    }

    /**
     * @param suffix  文件后缀
     * @param defIcon 加载错误后显示的默认图片
     */
    public static void GlideLoadUserPic(Context context, String suffix, int defIcon, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_USER_URL + suffix, defIcon, view);
    }

    public static void GlideLoadUserPicNoDefault(Context context, String suffix, ImageView view) {
        GlideLoadPicNoDefault(context, CommonConstants.FILE_USER_URL + suffix, view);
    }

    //---------------------------

    /**
     * 加载配置相关的图片
     */
    public static void GlideLoadConfigPic(Context context, String suffix, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_CONFIG_URL + suffix, view);
    }


    public static void GlideLoadConfigPic(Context context, String suffix, int defIcon, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_CONFIG_URL + suffix, defIcon, view);
    }

    public static void GlideLoadConfigPicNoDefault(Context context, String suffix, ImageView view) {
        GlideLoadPicNoDefault(context, CommonConstants.FILE_CONFIG_URL + suffix, view);
    }


    //---------------------------

    /**
     * 加载公司相关的图片
     */
    public static void GlideLoadFirmPic(Context context, String suffix, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_FIRM_URL + suffix, view);
    }

    public static void GlideLoadFirmPic(Context context, String suffix, int defIcon, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_FIRM_URL + suffix, defIcon, view);
    }

    public static void GlideLoadFirmPicNoDefault(Context context, String suffix, ImageView view) {
        GlideLoadPicNoDefault(context, CommonConstants.FILE_FIRM_URL + suffix, view);
    }

    //---------------------------

    /**
     * 加载任务相关的图片
     */
    public static void GlideLoadTaskPic(Context context, String suffix, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_TASK_URL + suffix, view);

    }


    public static void GlideLoadTaskPic(Context context, String suffix, int defIcon, ImageView view) {
        GlideLoadPic(context, CommonConstants.FILE_TASK_URL + suffix, defIcon, view);
    }

    public static void GlideLoadTaskPicNoDefault(Context context, String suffix, ImageView view) {
        GlideLoadPicNoDefault(context, CommonConstants.FILE_TASK_URL + suffix, view);
    }

    //---------------------------


    /**
     * 有默认图片
     */
    public static void GlideLoadPic(Context context, String url, ImageView view) {
        Glide.with(context)
                .load(url) // 加载路径
                .apply(RequestOptions.centerCropTransform().placeholder(R.mipmap.icon_img_loading)
                        .error(R.mipmap.default_error))
                .into(view);
    }

    /**
     * @param url     加载图片地址
     * @param defIcon 加载错误后显示的默认图片
     */
    public static void GlideLoadPic(Context context, String url, int defIcon, ImageView view) {
        Glide.with(context)
                .load(url) // 加载路径
                .apply(RequestOptions.centerCropTransform().placeholder(R.mipmap.icon_img_loading)
                        .error(defIcon))
                .into(view);
    }


    /**
     * 加载头像
     *
     * @param context
     * @param url
     * @param view
     */
    public static void GlideLoadPortrait(Context context, String url, ImageView view) {
        Glide.with(context)
                .load(getHeadImageUrl(url)) // 加载路径
                .apply(RequestOptions.centerCropTransform().placeholder(R.mipmap.defaul_portrait_icon)
                        .error(R.mipmap.defaul_portrait_icon))
                .into(view);
    }


    public static void GlideLoadPic(Context context, Uri uri, ImageView view) {
        Glide.with(context)
                .load(uri) // 加载路径
                .apply(RequestOptions.centerCropTransform())
                .into(view);
    }

    //没有默认图片的
    public static void GlideLoadPicNoDefault(Context context, String url, ImageView view) {
        Glide.with(context)
                .load(url) // 加载路径
                .apply(RequestOptions.centerCropTransform())
                .into(view);
    }

    //没有默认图片的
    public static void GlideLoadPicNoDefault(Context context, int ResId, ImageView view) {
        Glide.with(context)
                .load(ResId) // 加载路径
                .apply(RequestOptions.centerCropTransform())
                .into(view);
    }


    public static void GlideLoadPic(Context context, int ResId, ImageView view) {
        Glide.with(context)
                .load(ResId) // 加载路径
                .apply(RequestOptions.centerCropTransform() // 居中剪切
                        .placeholder(R.mipmap.icon_img_loading)
                        .error(R.mipmap.default_error))
                .into(view);
    }

    @Nullable
    public static void GlideLoadPic(Context context, int ResId, ImageView view, @NonNull RequestOptions requestOptions) {
        Glide.with(context)
                .load(ResId) // 加载路径
                .apply(requestOptions)
                .into(view);
    }
    public static void GlideFitCenterLoadPic(Context context, int ResId, ImageView view) {
        Glide.with(context)
                .load(ResId) // 加载路径
                .apply(RequestOptions.fitCenterTransform() // 居中剪切
                        .placeholder(R.mipmap.icon_img_loading)
                        .error(R.mipmap.default_error))
                .into(view);
    }

    public static void GlideLoadPic(Context context, File fileImage, ImageView view) {
        Glide.with(context)
                .load(fileImage) // 加载路径
                .apply(RequestOptions.centerCropTransform() // 居中剪切
                        .placeholder(R.mipmap.icon_img_loading)
                        .error(R.mipmap.default_error))
                .into(view);
    }

    public static String getHeadImageUrl(String path) {
        return CommonConstants.FILE_USER_URL + path;
    }


    /**
     * 监管类型图标
     */
    public static void GlideLoadConfigPNGIcon(Context context, String url, ImageView view) {
        Glide.with(context)
                .load(CommonConstants.FILE_CONFIG_URL + url + ".png") // 加载路径
                .apply(RequestOptions.centerCropTransform().placeholder(R.mipmap.icon_img_loading)
                        .error(R.mipmap.default_error))
                .into(view);
    }
}
